home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / magicvdi.d < prev    next >
Text File  |  1997-10-26  |  21KB  |  615 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *         MAGIC   Modula's  All purpose  GEM  Interface  Cadre         *
  4.  *                 ÿ         ÿ            ÿ    ÿ          ÿ             *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schrift-  *
  11.  * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung    *
  12.  * ber Public-Domain-H„ndler bedarf der ausdrcklichen schriftlichen   *
  13.  * Genehmigung des Autors!                                              *
  14.  *                                                                      *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
  16.  * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins-  *
  17.  * besondere dieser Urheberrechts-Vermerk nicht ver„ndert wird, und     *
  18.  * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor    *
  19.  * beh„lt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
  20.  * von Grnden zu widerrufen.                                           *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. (*----------------------------------------------------------------------*
  24.  * MagicVDI     Virtual Device Interface             Modula-2 Interface *
  25.  *----------------------------------------------------------------------*)
  26.  
  27. DEFINITION MODULE MagicVDI;
  28.  
  29. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  30.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  31.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  32.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  33.  
  34.  
  35.  
  36.  
  37.  
  38. IMPORT SYSTEM;
  39.  
  40. (*-- VDI-Parameter ---------------------------------------------------*)
  41.  
  42. TYPE    tWorkIn =        ARRAY [0..10]  OF sINTEGER;
  43.         tWorkOut =       ARRAY [0..57]  OF sINTEGER;
  44.         tPxyArray =      ARRAY [0..3]   OF sINTEGER;
  45.         tBigPxyArray =   ARRAY [0..7]   OF sINTEGER;
  46.         tMouseArray =    ARRAY [0..38]  OF sINTEGER;
  47.         tSmallArray =    ARRAY [0..1]   OF sINTEGER;
  48.         tRGBArray =      ARRAY [0..2]   OF sINTEGER;
  49.         tTextAttrArray = ARRAY [0..9]   OF sINTEGER;
  50.         tFontName =      ARRAY [0..31]  OF CHAR;
  51.         tDistanceArray = ARRAY [0..4]   OF sINTEGER;
  52.         tFilmName =      ARRAY [0..124] OF CHAR;
  53.         tFilmIndex =     ARRAY [0..7],[0..1] OF sINTEGER;
  54.         tCtrlArray =     ARRAY [0..512] OF sINTEGER;
  55.  
  56. VAR     VDIControl:     ARRAY [0..11] OF sINTEGER;
  57.         VDIIntIn:       tCtrlArray;
  58.         VDIPtsIn:       tCtrlArray;
  59.         VDIIntOut:      tCtrlArray;
  60.         VDIPtsOut:      tCtrlArray;
  61.  
  62. VAR     VDIPB:          RECORD
  63.                          control: POINTER TO ARRAY [0..11] OF sINTEGER;
  64.                          intin:   POINTER TO tCtrlArray;
  65.                          ptsin:   POINTER TO tCtrlArray;
  66.                          intout:  POINTER TO tCtrlArray;
  67.                          ptsout:  POINTER TO tCtrlArray;
  68.                         END;
  69.  
  70. PROCEDURE VDICall (ctrl0, ctrl1, ctrl3, ctrl5, ctrl6: sINTEGER);
  71.  
  72.  
  73. CONST   NoGdos =   0FFFFFFFEH;  (* Kein GDOS isntalliert *)
  74.         Gdos =     00007E88AH;  (* GDOS 1.1 von Atari Corp. *)
  75.         AMCGdos =  00007E864H;  (* AMCGDos von Arnd Beissner *)
  76.         AMCLight = 00007E8BAH;  (* GEMINI-Spezial-GDos von Arnd Beissner *)
  77.         NVDI =     000000000H;  (* NVDI von Bela GmbH *)
  78.  
  79. PROCEDURE VqGdos(): lCARDINAL;
  80. (* Achtung, das ABC-GEM (GEM 2.1) schmiert bei dieser Funktion ab!!! *)
  81.  
  82. (*-- VDI-Attrib ------------------------------------------------------*)
  83.                       
  84.  
  85. CONST   REPLACE =        1;      (* Schreibmodi *)
  86.         TRANSPARENT =    2;
  87.         XOR =            3;
  88.         REVTRANSPARENT = 4;
  89.         
  90.         ALL_WHITE      =   0;
  91.         S_AND_D        =   1;
  92.         S_AND_NOTD     =   2;
  93.         S_ONLY         =   3;
  94.         NOTS_AND_D     =   4;
  95.         D_ONLY         =   5;
  96.         S_XOR_D        =   6;
  97.         S_OR_D         =   7;
  98.         NOT_SORD       =   8;
  99.         NOT_SXORD      =   9;
  100.         D_INVERT       =  10;
  101.         NOT_D          =  11;
  102.         S_OR_NOTD      =  12;
  103.         NOTS_OR_D      =  13;
  104.         NOT_SANDD      =  14;
  105.         ALL_BLACK      =  15;
  106.  
  107.  
  108. PROCEDURE SetWritemode (handle, mode: sINTEGER): sINTEGER;
  109.           (* vswr_mode *)
  110.           
  111. PROCEDURE SetColor     (handle, index: sINTEGER; VAR rgb: ARRAY OF LOC);
  112.           (* vs_color *)
  113.           
  114. CONST   Line =          1;      (* Linienstile *)
  115.         LongDash =      2;
  116.         Dot =           3;
  117.         DashDot =       4;
  118.         Dash =          5;
  119.         DashDotDot =    6;
  120.         User =          7;
  121.  
  122. PROCEDURE SetLinetype      (handle, type: sINTEGER): sINTEGER;
  123.           (* vsl_type *)
  124.           
  125. PROCEDURE SetUserlinestyle (handle: sINTEGER; REF  style: ARRAY OF LOC);
  126.           (* vsl_udsty *)
  127.  
  128. PROCEDURE SetLinewidth     (handle, width: sINTEGER): sINTEGER;
  129.           (* vsl_width *)
  130.  
  131. PROCEDURE SetLinecolor     (handle, color: sINTEGER): sINTEGER;
  132.           (* vsl_color *)
  133.  
  134. CONST   Cornerd =       0;      (* Linien-Endtypen *)
  135.         Arrow =         1;
  136.         Rounded =       2;
  137.                       
  138. PROCEDURE SetLineEndstyles (handle, begin, end: sINTEGER);
  139.           (* vsl_ends *)
  140.  
  141. CONST   Point =         1;      (* Markertypen *)
  142.         Plus =          2;
  143.         Star =          3;
  144.         Square =        4;
  145.         Cross =         5;
  146.         Diamond =       6;
  147.  
  148. PROCEDURE SetMarkertype   (handle, type: sINTEGER): sINTEGER;
  149.           (* vsm_type *)
  150.  
  151. PROCEDURE SetMarkerheight (handle, height: sINTEGER): sINTEGER; 
  152.           (* vsm_height *)
  153.  
  154. PROCEDURE SetMarkercolor  (handle, index: sINTEGER): sINTEGER;
  155.           (* vsm_color *)
  156.  
  157. PROCEDURE SetCharheight   (handle, h: sINTEGER; VAR ch, cw, bh, bw: sINTEGER);
  158.           (* vst_height *)
  159.  
  160. PROCEDURE SetCharpoints   (handle, h: sINTEGER; VAR ch, cw, bh, bw: sINTEGER): sINTEGER;
  161.           (* vst_point *)
  162.  
  163. PROCEDURE SetCharbaseline (handle, angle: sINTEGER): sINTEGER;
  164.           (* vst_rotation *)
  165.  
  166. PROCEDURE SetTextface     (handle, font: sINTEGER): sINTEGER;
  167.           (* vst_font *)
  168.  
  169. PROCEDURE SetTextcolor    (handle, index: sINTEGER): sINTEGER;
  170.           (* vst_color *)
  171.  
  172. CONST   Fat =           Bit0;      (* Text-Effekte *)
  173.         Light =         Bit1;
  174.         Italic =        Bit2;
  175.         Underline =     Bit3;
  176.         Outline =       Bit4;
  177.         Shadowed =      Bit5;
  178.  
  179. PROCEDURE SetTexteffect (handle: sINTEGER; effect: sBITSET): sBITSET;
  180.           (* vst_effects *)
  181.  
  182. CONST   LeftJust =      0;
  183.         Centerd =       1;
  184.         RightJust =     2;
  185.  
  186. CONST   BaseJust =      0;
  187.         HalfJust =      1;
  188.         AscentJust =    2;
  189.         BottomJust =    3;
  190.         DescentJust =   4;
  191.         TopJust =       5;
  192.  
  193. PROCEDURE SetTextalignment (handle, hin, vin: sINTEGER; VAR hout, vout: sINTEGER);
  194.           (* vst_alignment *)
  195.  
  196. CONST   None =          0;      (* Flltypen *)
  197.         Full =          1;
  198.         Pattern =       2;
  199.         Hatch =         3;
  200.         UserFill =      4;
  201.  
  202. PROCEDURE SetFillinterior (handle: sINTEGER; index: sINTEGER): sINTEGER;
  203.           (* vsf_interior *)
  204.  
  205. PROCEDURE SetFillstyle (handle, style: sINTEGER): sINTEGER;
  206.           (* vsf_style *)
  207.  
  208. PROCEDURE SetFillcolor (handle, index: sINTEGER): sINTEGER; 
  209.           (* vsf_color *)
  210.  
  211. PROCEDURE SetFillperimeter (handle: sINTEGER; border: BOOLEAN): BOOLEAN;
  212.           (* vsf_perimeter *)
  213.  
  214. PROCEDURE SetUserfillpattern (handle: sINTEGER; VAR pat: ARRAY OF LOC;
  215.                               planes: sINTEGER);
  216.           (* vs_udpat *)
  217.  
  218.  
  219. (*-- VDI-Control -----------------------------------------------------*)
  220.  
  221.  
  222. PROCEDURE OpenWorkstation (VAR in: ARRAY OF LOC;
  223.                            VAR handle: sINTEGER;
  224.                            VAR out: ARRAY OF LOC);
  225.           (* v_opnwk *)
  226.  
  227. PROCEDURE CloseWorkstation  (handle: sINTEGER);
  228.           (* v_clswk *)
  229.  
  230. PROCEDURE OpenVirtual (VAR in: ARRAY OF LOC;
  231.                        VAR handle: sINTEGER;
  232.                        VAR out: ARRAY OF LOC);
  233.           (* v_opnvwk *)
  234.  
  235. PROCEDURE CloseVirtual (handle: sINTEGER);
  236.           (* v_clsvwk *)
  237.  
  238. PROCEDURE ClearWorkstation (handle: sINTEGER);
  239.           (* v_clrwk *)
  240.  
  241. PROCEDURE UpdateWorkstation (handle: sINTEGER);
  242.           (* v_updwk *)
  243.  
  244. PROCEDURE LoadFonts (handle, select: sINTEGER): sINTEGER;
  245.           (* vst_load_fonts *)
  246.  
  247. PROCEDURE UnloadFonts (handle, select: sINTEGER);
  248.           (* vst_unload_fonts *)
  249.  
  250. PROCEDURE SetClipping (handle: sINTEGER; VAR rect: ARRAY OF LOC; do: BOOLEAN);
  251.           (* vs_clip *)
  252.  
  253.  
  254. (*-- VDI-Escape ------------------------------------------------------*)
  255.  
  256.  
  257. PROCEDURE InqCharcells (handle: sINTEGER; VAR rows, colums: sINTEGER);
  258.           (* vq_chcells *)
  259.  
  260. PROCEDURE ExitAlphamode (handle: sINTEGER);
  261.           (* v_exit_cur *)
  262.  
  263. PROCEDURE EnterAlphamode (handle: sINTEGER);
  264.           (* v_enter_cur *)
  265.  
  266. PROCEDURE AcursorUp (handle: sINTEGER);
  267.           (* v_curup *)
  268.  
  269. PROCEDURE AcursorDown (handle: sINTEGER);
  270.           (* v_curdown *)
  271.  
  272. PROCEDURE AcursorRight (handle : sINTEGER);
  273.           (* v_curright *)
  274.  
  275. PROCEDURE AcursorLeft (handle: sINTEGER);
  276.           (* v_curleft *)
  277.  
  278. PROCEDURE HomeAcursor (handle: sINTEGER);
  279.           (* v_curhome *)
  280.  
  281. PROCEDURE EraseEOS (handle: sINTEGER);
  282.           (* v_eeos *)
  283. (* EOS = End of screen *)
  284.  
  285. PROCEDURE EraseEOL (handle: sINTEGER);
  286.           (* v_eeol *)
  287. (* EOL = End of line *)
  288.  
  289. PROCEDURE AcursorAddress (handle, row, column: sINTEGER);
  290.           (* v_curaddress *)
  291.  
  292. PROCEDURE CursorText (handle: sINTEGER; REF  string: ARRAY OF CHAR);
  293.           (* v_curtext *)
  294.  
  295. PROCEDURE ReverseVideoOn (handle: sINTEGER);
  296.           (* v_rvon *)
  297.  
  298. PROCEDURE ReverseVideoOff (handle: sINTEGER);
  299.           (* v_rvoff *)
  300.  
  301. PROCEDURE InqCursoraddress (handle: sINTEGER; VAR row, column: sINTEGER);
  302.           (* vq_curaddress *)
  303.  
  304. PROCEDURE InqTabletstatus (handle: sINTEGER): sINTEGER;
  305.           (* vq_tabstatus *)
  306.  
  307. PROCEDURE Hardcopy (handle: sINTEGER);
  308.           (* v_hardcopy *)
  309.  
  310. PROCEDURE DisplayCursor (handle, x, y: sINTEGER);
  311.           (* v_dspcur *)
  312.  
  313. PROCEDURE RemoveCursor (handle: sINTEGER);
  314.           (* v_rmcur *)
  315.  
  316. PROCEDURE FormAdvance (handle: sINTEGER);
  317.           (* v_form_adv *)
  318.  
  319. PROCEDURE OutputWindow (handle: sINTEGER; VAR pxy: ARRAY OF LOC);
  320.           (* v_output_window *)
  321.  
  322. PROCEDURE ClearDisplaylist (handle: sINTEGER);
  323.           (* v_clear_disp_list *)
  324.  
  325. PROCEDURE Bitimagefile (handle: sINTEGER; REF  fileName: ARRAY OF CHAR;
  326.                         aspect, scaling, numPts: sINTEGER;
  327.                         VAR pxy: ARRAY OF LOC);
  328.           (* v_bit_image *)
  329.  
  330. PROCEDURE InqPrinterscan(handle: sINTEGER; VAR gSlice, gPage, size, page, div: sINTEGER);
  331.           (* vq_scan *)
  332.  
  333. PROCEDURE PrintText (handle: sINTEGER; REF  string: ARRAY OF CHAR);
  334.           (* v_alpha_text *)
  335.  
  336. PROCEDURE SelectPalette (handle, palette: sINTEGER): sINTEGER;
  337.           (* vs_palette *)
  338.  
  339. PROCEDURE GenerateTone (handle, freq, time: sINTEGER);
  340.           (* v_sound *)
  341.  
  342. PROCEDURE ToneMultiflag (handle, action: sINTEGER);
  343.           (* vs_mute *)
  344.  
  345. PROCEDURE SetTabletaxisInch (handle, xres, yres: sINTEGER;
  346.                              VAR xset, yset: sINTEGER);
  347.           (* vt_resolution *)
  348.  
  349. PROCEDURE SetTabletaxisLine (handle, xres, yres: sINTEGER;
  350.                              VAR xset, yset: sINTEGER);
  351.           (* vt_axis *)
  352.  
  353. PROCEDURE SetTabletorigin (handle, x, y: sINTEGER);
  354.           (* vt_origin *)
  355.  
  356. PROCEDURE InqTabletorigin (handle: sINTEGER; VAR x, y: sINTEGER);
  357.           (* vq_tdimensions *)
  358.  
  359. PROCEDURE SetTabletalignment (handle, x, y: sINTEGER);
  360.           (* vt_alignment *)
  361.  
  362. PROCEDURE SetFilmtype (handle, index, light: sINTEGER);
  363.           (* vsp_film *)
  364.  
  365. PROCEDURE InqFilmname (handle: sINTEGER; VAR filmName: ARRAY OF CHAR);
  366.           (* vqp_filmname *)
  367.  
  368. PROCEDURE SetFilmexposure (handle, state: sINTEGER);
  369.           (* vsc_expose *)
  370.  
  371. PROCEDURE UpdateMetafile (handle, minX, minY, maxX, maxY: sINTEGER);
  372.           (* v_meta_extents *)
  373.  
  374. PROCEDURE WriteMetafile (handle, numIntin: sINTEGER;  VAR intIn: ARRAY OF LOC;
  375.                          numPtsin: sINTEGER;  VAR ptsIn: ARRAY OF LOC);
  376.           (* v_write_meta *)
  377.  
  378. PROCEDURE PhysicalPagesize (handle, width, height: sINTEGER);
  379.           (* vm_pagesize *)
  380.  
  381. PROCEDURE CoordinateWindow (handle, llx, lly, urx, ury: sINTEGER);
  382.           (* vm_coords *)
  383.  
  384. PROCEDURE ChangeVdiFilename (handle: sINTEGER; REF  fileName: ARRAY OF CHAR);
  385.           (* vm_filename *)
  386.  
  387. PROCEDURE SetLineoffset (handle, offset: sINTEGER);
  388.           (* v_offset *)
  389.  
  390. PROCEDURE InitSystemfont (handle: sINTEGER; VAR header: ARRAY OF LOC);
  391.           (* v_fontinit *)
  392.  
  393.  
  394. (*-- VDI-Input -------------------------------------------------------*)
  395.  
  396. CONST   Mouse =         1;      (* Device-Typen *)
  397.         Cursor =        2;
  398.         FKey =          3;
  399.         Keyboard =      4;
  400.  
  401. CONST   Request =       1;      (* Input-Modus *)
  402.         Sample =        2;
  403.  
  404.  
  405. PROCEDURE SetInputmode (handle, device, mode: sINTEGER): sINTEGER;
  406.           (* vsin_mode *)
  407.  
  408. PROCEDURE InputLocatorRQ (handle, x, y: sINTEGER; VAR xo, yo: sINTEGER;
  409.                           VAR term: CHAR);
  410.           (* vrq_locator *)
  411.  
  412. PROCEDURE InputLocatorSM (handle, x, y: sINTEGER; VAR xo, yo: sINTEGER;
  413.                           VAR term: CHAR): sBITSET;
  414.           (* vsm_locator *)
  415.  
  416. PROCEDURE InputValuatorRQ (handle, in: sINTEGER; VAR out: sINTEGER; VAR term: CHAR);
  417.           (* vrq_valuator *)
  418.  
  419. PROCEDURE InputValuatorSM (handle, in: sINTEGER; VAR out: sINTEGER;
  420.                            VAR term: CHAR): sBITSET;
  421.           (* vsm_valuator *)
  422.  
  423. PROCEDURE InputChoiceRQ (handle, in: sINTEGER; VAR out: sINTEGER);
  424.           (* vrq_choice *)
  425.  
  426. PROCEDURE InputChoiceSM (handle: sINTEGER; VAR choice: sINTEGER ): sINTEGER;
  427.           (* vsm_choice *)
  428.  
  429. PROCEDURE InputStringRQ (handle, len: sINTEGER; echo: BOOLEAN;
  430.                          VAR xy: ARRAY OF LOC;
  431.                          VAR string: ARRAY OF CHAR);
  432.           (* vrq_string *)
  433.  
  434. PROCEDURE InputStringSM (handle, len: sINTEGER; echo: BOOLEAN;
  435.                          VAR xy: ARRAY OF LOC;
  436.                          VAR string: ARRAY OF CHAR): sINTEGER;
  437.           (* vsm_string *)
  438.  
  439. PROCEDURE SetMouseform (handle: sINTEGER; VAR form: ARRAY OF LOC);
  440.           (* vsc_form *)
  441.  
  442. PROCEDURE ShowCursor (handle: sINTEGER; reset: BOOLEAN);
  443.           (* v_show *)
  444.  
  445. PROCEDURE HideCursor (handle: sINTEGER);
  446.           (* v_hide *)
  447.  
  448. PROCEDURE SampleMouse (handle: sINTEGER; VAR stat: sBITSET; VAR x, y: sINTEGER);
  449.           (* vq_mouse *)
  450.  
  451. PROCEDURE ExTimerVector (handle: sINTEGER; new: SYSTEM.ADDRESS; VAR intervall: sINTEGER): SYSTEM.ADDRESS;
  452.           (* vex_timv *)
  453.  
  454. PROCEDURE ExButtonVector (handle: sINTEGER; new: SYSTEM.ADDRESS): SYSTEM.ADDRESS;
  455.           (* vex_butv *)
  456.  
  457. PROCEDURE ExMovementVector (handle: sINTEGER; new: SYSTEM.ADDRESS): SYSTEM.ADDRESS;
  458.           (* vex_motv *)
  459.  
  460. PROCEDURE ExCursorVector (handle: sINTEGER; new: SYSTEM.ADDRESS): SYSTEM.ADDRESS;
  461.           (* vex_curv *)
  462.  
  463. CONST   KRSHIFT =       Bit0;   (* Tastatur-Status *)
  464.         KLSHIFT =       Bit1;
  465.         KCTRL =         Bit2;
  466.         KALT =          Bit3;
  467.         KCAPS =         Bit4;   (* Fr VDI undokumentiert *)
  468.  
  469. PROCEDURE SampleKeyboard (handle: sINTEGER; VAR status: sBITSET);
  470.           (* vq_key_s *)
  471.  
  472.  
  473. (*-- VDI-Inquire -----------------------------------------------------*)
  474.  
  475. CONST   Workstation =   0;
  476.         Extended =      1;
  477.  
  478.  
  479. PROCEDURE ExtendedInq (handle, wich: sINTEGER; VAR out: ARRAY OF LOC);
  480.           (* vq_extnd *)
  481.  
  482. PROCEDURE InqColor (handle, color: sINTEGER; set: BOOLEAN; VAR rgb: ARRAY OF LOC);
  483.           (* vq_color *)
  484.  
  485. PROCEDURE InqLine (handle: sINTEGER; VAR attrib: ARRAY OF LOC);
  486.           (* vql_attributs *)
  487.  
  488. PROCEDURE InqMarker (handle: sINTEGER; VAR attrib: ARRAY OF LOC);
  489.           (* vqm_attributs *)
  490.  
  491. PROCEDURE InqFill (handle: sINTEGER; VAR attrib: ARRAY OF LOC);
  492.           (* vqf_attributs *)
  493.  
  494. PROCEDURE InqText (handle: sINTEGER; VAR attrib: ARRAY OF LOC);
  495.           (* vqt_attributs *)
  496.  
  497. PROCEDURE InqTextextent (handle: sINTEGER; REF  string: ARRAY OF CHAR;
  498.                              VAR extent: ARRAY OF LOC);
  499.           (* vqt_extent *)
  500.  
  501. PROCEDURE InqCharwidth (handle: sINTEGER; ch: CHAR;
  502.                             VAR width, left, right: sINTEGER): sINTEGER;
  503.           (* vqt_width *)
  504.  
  505. PROCEDURE InqFacename (handle, element: sINTEGER;
  506.                            VAR name: ARRAY OF CHAR): sINTEGER;
  507.           (* vqt_name *)
  508.  
  509. PROCEDURE InqCellarray (handle: sINTEGER; VAR pxy: ARRAY OF LOC;
  510.                             len, rows: sINTEGER;
  511.                             VAR elUsed, rowsUsed, status: sINTEGER;
  512.                             VAR colArray: ARRAY OF LOC);
  513.           (* vq_cellarray *)
  514.  
  515. PROCEDURE InqInputmode (handle, device: sINTEGER): sINTEGER;
  516.           (* vqin_mode *)
  517.  
  518. PROCEDURE InqFaceinfo (handle : sINTEGER;
  519.                            VAR minADE, maxADE, maxWidth: sINTEGER;
  520.                            VAR dist, effects: ARRAY OF LOC);
  521.           (* vqt_fontinfo *)
  522.  
  523.  
  524. (*-- VDI-Output ------------------------------------------------------*)
  525.  
  526. PROCEDURE Polyline (handle, count: sINTEGER; pxy: ARRAY OF LOC);
  527.           (* v_pline *)
  528.  
  529. PROCEDURE Polymarker (handle, count: sINTEGER; pxy: ARRAY OF LOC);
  530.           (* v_pmarker *)
  531.  
  532. PROCEDURE Text (handle, x, y: sINTEGER; REF  string: ARRAY OF CHAR);
  533.           (* v_gtext *)
  534.  
  535. PROCEDURE FilledArea (handle, count: sINTEGER; pxy: ARRAY OF LOC);
  536.           (* v_fillarea *)
  537.  
  538. PROCEDURE CellArray (handle, len, used, rows, mode: sINTEGER;
  539.                      VAR pxy, color: ARRAY OF LOC);
  540.           (* v_cellarray *)
  541.  
  542. PROCEDURE ContourFill (handle, x, y, index: sINTEGER);
  543.           (* v_contourfill *)
  544.  
  545. PROCEDURE FillRectangle (handle: sINTEGER; pxy: ARRAY OF LOC);
  546.           (* vr_recfl *)
  547.  
  548. PROCEDURE Bar (handle: sINTEGER; pxy: ARRAY OF LOC);
  549.           (* v_bar *)
  550.  
  551. PROCEDURE Arc (handle, x, y, rad, beg, end: sINTEGER);
  552.           (* v_arc *)
  553.  
  554. PROCEDURE Pie (handle, x, y, rad, beg, end: sINTEGER);
  555.           (* v_pieslice *)
  556.  
  557. PROCEDURE Circle (handle, x, y, rad: sINTEGER);
  558.           (* v_circle *)
  559.  
  560. PROCEDURE Ellipse (handle, x, y, xrad, yrad: sINTEGER);
  561.           (* v_ellipse *)
  562.  
  563. PROCEDURE EllipticalArc (handle, x, y, xrad, yrad, beg, end: sINTEGER);
  564.           (* v_ellarc *)
  565.  
  566. PROCEDURE EllipticalPie (handle, x, y, xrad, yrad, beg, end: sINTEGER);
  567.           (* v_ellpie *)
  568.  
  569. PROCEDURE RoundedRectangle (handle: sINTEGER; pxy: ARRAY OF LOC);
  570.           (* v_rbox *)
  571.  
  572. PROCEDURE FilledRoundedRectangle (handle: sINTEGER; pxy: ARRAY OF LOC);
  573.           (* v_rfbox *)
  574.  
  575. PROCEDURE JustifiedText (handle, x, y, len, wspace, cspace: sINTEGER;
  576.                          REF  string: ARRAY OF CHAR);
  577.           (* v_justified *)
  578.  
  579.  
  580. (*-- VDI-Raster ------------------------------------------------------*)
  581.  
  582. TYPE MFDB =     RECORD
  583.                  fdAddr:    SYSTEM.ADDRESS;
  584.                  fdW:       sINTEGER;
  585.                  fdH:       sINTEGER;
  586.                  fdWdwidth: sINTEGER;
  587.                  fdStand:   sINTEGER;
  588.                  fdNplanes: sINTEGER;
  589.                  fdR1:      sINTEGER;
  590.                  fdR2:      sINTEGER;
  591.                  fdR3:      sINTEGER;
  592.                 END;
  593.  
  594. PROCEDURE CopyRasterOpaque (handle, mode: sINTEGER;
  595.                             pxy, srcMFDB, destMFDB: ARRAY OF LOC);
  596.           (* vro_cpyfm *)
  597.  
  598. PROCEDURE CopyRasterTransparent (handle, mode, cSet, cNotset: sINTEGER;
  599.                                  pxy, srcMFDB, destMFDB: ARRAY OF LOC);
  600.           (* vrt_cpyfm *)
  601.  
  602. PROCEDURE TransformForm (handle: sINTEGER; VAR srcMFDB, destMFDB: ARRAY OF LOC);
  603.           (* vr_trnfm *)
  604.  
  605. PROCEDURE GetPixel (handle, x, y: sINTEGER; VAR index: sINTEGER): BOOLEAN;
  606.           (* v_get_pixel *)
  607.  
  608. PROCEDURE InitVDI;
  609. (* Init-Prozedur. Wird im Modulk”rper ausgefhrt und braucht nicht weiter
  610.  * beachtet zu werden.
  611.  *)
  612.  
  613. END MagicVDI.
  614.  
  615.